home *** CD-ROM | disk | FTP | other *** search
/ AOL File Library: 4,101 to 4,200 / aol-file-protocol-4400-4101-to-4200.zip / AOLDLs / ADV - Message Board Archives / Solving GS_OS Problems #1 / GSOS.problems1 next >
Text File  |  2014-11-30  |  50KB  |  845 lines

  1. Subj:  GS/OS                                 88-10-18 21:59:50 EST
  2. From:  Alan33                                Msgs:  29 (89-01-27)
  3.  
  4. Gang,
  5. I got a copy of the new GS/OS and some strange things are happening.
  6. Some Prodos 8 applications are crashing off the desktop. the only one that works is appleworks. The others work great off the older (3.0)sys disk. I tried replacing the Prodos 8 on the new disk with that of the old and that didn't work either.
  7. The main ones I'm having problems with are ProTerm (terminal program from Checkmate) and Blu 2.28. All my prodos 16 stuff works fine.
  8. Any ideas what I can do to make them work with the new sys disk? Have I neglected to install something from the Tool disk?
  9. If anyone has any experience with this please let me know.
  10.  
  11.                                         Alan33
  12.  
  13. Subj:  GS/OS and P8                          88-10-18 22:59:20 EST
  14. From:  AFL Jim
  15.  
  16. I've been running all of my ProDOS-8 applications after booting GS/OS. I haven't had any crashes yet. That included utilities, AppleWorks, AppleWriter, AppleLink-PE, Mousetalk, Kyan Pascal, BASIC.SYSTEM, etc.
  17.  
  18. Jim
  19.  
  20.  
  21.  
  22. Subj:  Re: GS/OS                             88-10-18 23:16:56 EST
  23. From:  Dave Lyons
  24.  
  25. I don't know what would make your P8 applications crash, Alan...if it gives you any readable stuff on the screen, let me know what it is (even if it's a register dump with a bunch of numbers and letters...that's my favorite sort of thing!).
  26.  
  27. --Dave L
  28.  
  29. Subj:  Re: GS/OS Crashes                     88-10-19 20:41:37 EST
  30. From:  DennisDoms
  31.  
  32. Just for reference..I've been running both Proterm (v2.01) and BLU 2.28 with GS/OS since AppleFest, with no problems...
  33.  
  34. If you have doubts about the "completeness" of your operating system setup (tool set compatibilities, etc.), and you didn't use the Installer to set things up, you may want to go back and use the Installer. It should make sure you have the right combinations installed.
  35.  
  36. Subj:  Re: GS/OS                             88-10-19 23:39:45 EST
  37. From:  Alan33
  38.  
  39. DennisDoms,
  40. I did run the stuff I nstalled (5.25 driver was about the only thing and some NDAS from Stylewares DeskWorks including the Menu Clock) with the intaller program. What else should be installed?
  41. Maybe the option "install everything possible"?
  42.       
  43.                                        Alan33
  44.  
  45. Subj:  Re: GS/OS                             88-10-19 23:43:40 EST
  46. From:  Alan33
  47.  
  48. Dennis,
  49. Could I have a bad copy of the GS/OS disk or tool disk?
  50. Everything else seems to work fine.
  51.  
  52.                                      Alan33
  53.  
  54. Subj:  Re: GS/OS                             88-10-20 23:22:08 EST
  55. From:  AFA Gary J
  56.  
  57. Alan,
  58.  
  59. Certain desk accessories have been known to cause problems from time to time.  I'm not saying for SURE that this is your problem, but it is certainly a possibility.  Problems with desk accessories seem to pop up when system software is changed.  You might try removing ALL your desk accessories from your DESK.ACCS folder, and then try re-booting and run your program.  If the program works...then try putting your desk accesories back onto your boot volume, one by one, testing your program after each installation.  Using this method you can identify the desk accessory that is causing the problem, and remove it.  Let us know if you discover the problem.
  60.  
  61. Gary
  62.  
  63.  
  64. Subj:  Re: GS/OS                             88-10-21 08:13:23 EST
  65. From:  AFL Floyd
  66.  
  67. Styleware's Menu.clock is probably one of the problems.  It is known to cause crashing on a lot of programs.  I'd ditch that one for sure.
  68.  
  69. Floyd
  70.  
  71. Subj:  Re: GS/OS & P8                        88-10-21 21:13:25 EST
  72. From:  TMH2
  73.  
  74. Why does P8 still exist on a GS/OS system?? Why don't we have a 'P8 emulator' which creates P8-style tables & MLI entry, but calls code which calls GS/OS?!  Worst of all, I can't write one, because GS/OS now vectors to old P8-only space in bank 0.  What's the deal?!?
  75.  
  76. T. Mike Howeth
  77.  
  78. Subj:  Re: GS/OS                             88-10-22 22:51:02 EST
  79. From:  Alan33
  80.  
  81. Gary,
  82. I thought the NDA thing was the problem. 
  83. It wasn't. My stupidity was.
  84. I went back and looked at the installer program again. There was this neat line that said "install system files". I did that and low and behold all my prodos 8 programs now run. 
  85. I don't know how I missed that one. Although since the file names were in the system folder I figured the stuff should work.  I was mistaken. 
  86. Oh well, live and learn (and spend lots of money)
  87. Thanks for everyones help.
  88.            
  89.                                   Alan33
  90.  
  91. Subj:  Re: GS/OS                             88-10-30 17:49:53 EST
  92. From:  WalterP12
  93.  
  94. I am having a problem with GS/OS, 5.25 and ramdisk (RamFactor). The operating system will recognize all three, but if I have the driver for the 5.25 disk in I don't know how to get the ramfactor to show up. It does so only when the driver for the 5.25 is out. 
  95.  
  96. Am I doing something, not doing something or is it the operating sytem ?
  97.  
  98. Thanks for the help. 
  99.  
  100. Subj:  Re: GS/OS cache & ramdisk size        88-11-20 03:22:52 EST
  101. From:  AndyBoy1
  102.  
  103. SamT2:
  104.  
  105. I just finished leaving a somewhat lengthy message under "GS/OS Bugs" - the folder - describing the operation of the GS/OS cache. Making a long story short, 512k cache is -way- too much.  For the most part the system only caches directory & bitmap blocks anyhow, so it's probably never all used.  And you pay a penalty in large caches, not only in memory use but in the time spent searching through them.
  106.  
  107. Andy Stadler
  108. Apple II System Software
  109.  
  110. Subj:  Re: GS/OS cache size                  88-11-20 12:32:41 EST
  111. From:  Founder
  112.  
  113. Andy thats interesting (512k cache too large).  What would be the optimum cache size then?  I suppose something on the order of 64k or less would be all that is needed for caching dir blocks.  
  114.  
  115. Mark
  116.  
  117.  
  118. Subj:  Re: GS/OS                             88-11-21 21:42:19 EST
  119. From:  AFA Parik
  120.  
  121. You must have one big directory if it takes 128 blocks...:-)
  122.  
  123. So thats why in Orca shell, if I delete a file off the HD on the other CMS, it won't register on this GS... any way to FORCE it to read the directory from the disk itself, instead of cached ram?  
  124.  
  125. Subj:  GS/OS and caching shared devs         88-11-22 03:10:30 EST
  126. From:  Dave Lyons
  127.  
  128. Ouch!  Caching anything at the block level from a shared device is _very_ dangerous to the integrity of your volume.  You are badly in need of a GS/OS device driver for your drive that _never_ caches any blocks.  Even without caching, your volume is still in danger if you have no way to prevent two machines from fiddling with a particular file or directory at the same time, not to mention the bitmap blocks.  Don't even want to _think_ about that....
  129.  
  130.  
  131. Subj:  Re: GS/OS                             88-11-22 21:37:15 EST
  132. From:  AFA Parik
  133.  
  134. Living on the wild side...:)
  135.  
  136. Actually I've been pretty safe so far, one will be in ProDOS 8 while the other is in GS applications.  Works out well. 
  137.  
  138. Subj:  shared devices                        88-11-22 21:39:41 EST
  139. From:  Dave Lyons
  140.  
  141. As Arthur Dent said in Episode 1 of _The Hitchhiker's Guide to the Galaxy_ (by Douglas Adams),
  142.  
  143.   "Ah.  This is obviously some strange usage of the word 'safe' that I wasn't previously aware of."
  144.  
  145. <grin>
  146.  
  147. What happens if you create a file with the machine running P8 and then create a file with the machine running GS/OS?  Doesn't GS/OS have a cached image of the volume's bitmap block(s), and therefore an outdated idea of what blocks are free?
  148.  
  149. This is not the only problem I can imagine, but it's the one most likely to trash your disk completely in the shortest amount of time. :-)  [For other amusing ways to fry disks, try shifting all the bytes in block 6 forward one & inserting a $55 at the beginning!  This has happened to me, unfortunately.]
  150.  
  151. I'd run MR.FIXIT on that volume _very_ frequently...
  152.  
  153. Subj:  Re: GS/OS                             88-11-23 01:23:29 EST
  154. From:  JSchober
  155.  
  156. This has nothing to do with GS/OS, but speaking of that thing on block 6... back when I was still using the <shuddddder> Rev. A SCSI ROM on the GS, the system had this disconcerting habit of taking an index block -- of a LARGE, IMPORTANT file, such as the PASSWORDS/user accounts file on my BBS <small, unchanging files aren't any fun to trash, now, are they??? ;) > -- and replicating the first 256 bytes on the second 256 bytes. That is, it would take all the low bytes of block numbers and copy 'em onto where the high bytes of the block numbers were.
  157.  
  158. Loads of fun. Searching every 256th block on a 40,000 block disk isn't much better than searching EVERY block on that disk. Took 7 hours of dedicated block editing to fix. And it happened TWICE.
  159.  
  160. 'Twas definitely a good incentive to get the SCSI upgrade.
  161.  
  162. <sigh>
  163.  
  164.  
  165. Subj:  Re: cache size                        88-11-23 02:55:06 EST
  166. From:  AndyBoy1
  167.  
  168. Cache size:
  169.  
  170. This is purely opinions.  I tend to run mine pretty small, 32k or 64k.  However, when more true GS/OS apps start to appear (like the one I'm writing :-)  ) and they use class 1 read calls with intelligent caching control ( like the one I'm writing :-)  ) the optimum cache size is going to go up.  A bit.
  171.  
  172. Multi-drive systems:
  173.  
  174. As has been so eloquently described, caching on multi-cpu peripherals is DANGEROUS.  In a word, -don't-.
  175.  
  176. --Andy
  177.  
  178. Subj:  disabling GS/OS caching               88-11-26 23:11:54 EST
  179. From:  Dave Lyons
  180.  
  181. I think you'll have to write your own loaded device driver if you want to avoid caching.  That will solve _part_ of the problem--you still have to avoid doing certain sorts of things, like doing _anything_ that allocates blocks on the volume using one machine while any files are open & may be written to on the other machine.  And you'd want to avoid simultaneous operations that make any kind of change to a directory, unless you're sure it's different directories & neither directory will grow [which would cause the bitmap to be fiddled with].
  182.  
  183. There is no concurrency control built into the ProDOS volume structure (I mean, no way to mark a directory block or a bitmap block as "WAIT!  I have a copy of this in RAM and will rewrite it shortly"), so you still need lots of intestinal fortitude to share a device.
  184.  
  185. I don't know whether P8 or the ProDOS FST does any caching with no files open other than through the device drivers.  If it does, you could still be out of luck with those bitmap blocks, for example
  186.  
  187. Subj:  directory caching (Floyd)             88-11-26 23:19:00 EST
  188. From:  Dave Lyons
  189.  
  190. Forwarded message (from the wrong folder :-)
  191. ----
  192. Subj:  Disable directory cacheing      88-11-24 10:17:26 est
  193. From:  AFL Floyd
  194.  
  195. I don't think it is possible to disable the directory cacheing feature.  If you don't want to use the benefits of GS/OS, you might want to go back to using P16. :)
  196.  
  197. Floyd
  198.  
  199. Subj:  Re: GS/OS                             88-11-27 20:28:30 EST
  200. From:  AFA Parik
  201.  
  202. Heheh, Floyd was obviously enjoying his holiday so much he staggered through the folders.  :)
  203.  
  204.  
  205. For those with the same problem, what I do is reboot upon a write by a different computer.  Obviously I am rebooting FREQUENTLY.  I do have Orca on ROM disk so its not very bad.  Every time you are writing to the disk with a different computer, you need to reboot.  *sigh*  Also NEVER, EVER, EVER read & write at the same time with a CMS, you can read/read at the same time, but thats the extent of it.  Even on different volumes [ie, the second partition].  What I'm going to do is create a image of my first hard drive on the second hard drive, so I'll have two systems that are different but are identical.  Gotta find time to copy 40 megs now...*Grin
  206.  
  207. Subj:  GS/OS Pathname Storage                88-12-29 01:29:19 EST
  208. From:  AFA Parik
  209.  
  210.  
  211. Does GS/OS *really* change Storage Types 1-3 to 1?  I mean the storage types as in SPARSE,TREE,etc -> STANDARD, EXTENDED,DIRECTORY/SUBDIRECTORY as per the GS/OS documentation.  Well, I keep getting storage type #2 instead of type #1 when I'm editing a file, I do play around with the storage type however and before I go in and find out what is going wrong I want to make sure GS/OS does indeed change all storage types that are NOT $05 and $0D into $01.  
  212.  
  213.  
  214.  
  215. Subj:  Re: GS/OS                             88-12-29 20:29:42 EST
  216. From:  TMH2
  217.  
  218. It does on a create.
  219.  
  220.  
  221. Subj:  storage type in Create parmlist       88-12-30 00:21:54 EST
  222. From:  Dave Lyons
  223.  
  224. Yes, the storage type parameter is changed to a 1 after a CREATE call if it was a 2 or 3.  5 (extended) and $D (subdirectory) are left alone.
  225.  
  226. Subj:  Re: GS/OS                             88-12-30 21:34:52 EST
  227. From:  AFA Parik
  228.  
  229. Heh, thanks, I thought I imagined the docs said the OPEN call returned with the values as standard/extended/dir ONLY (since those were only listed :), a few minutes of fiddling settled that question.  :-)
  230.  
  231.  
  232.  
  233. Subj:  Re: File Storage Types                89-01-27 03:55:06 EST
  234. From:  AndyBoy1
  235.  
  236. Regarding 1, 2, and 3 changing to 1:
  237.  
  238. At the application level, GS/OS only supports 3 storage classes:
  239. 1 = data only file
  240. 5 = data + resource file
  241. D = subdirectory
  242.  
  243. That's it.  For P16 compatibility, storage types 2 and 3 are mapped to 1.
  244.  
  245. I have just described the application level interface to GS/OS.  Now, the Pro.FST implements a file system which we all know and love, which has a 32 MB limitation, etc, etc.  And supports type 2 and 3 storage classes.  But "gs/os" applications only know file/resource/subdir, so those values on a ProDOS disk are mapped back to 1.
  246.  
  247. Remember:  The Application Level interface is not necessarily the ProDOS disk structure.
  248.  
  249. --Andy Stadler
  250. Apple II System Software
  251.  
  252. Subj:  Re: GS/OS Bugs                        88-10-22 20:20:54 EST
  253. From:  Matt DTS
  254.  
  255. Pardon my bluntness, but I don't believe any of it.  We tested most of what you say and had no problems.  Please be more specific:
  256.  
  257. 1) "GS/OS wrote to the wrong file."  Are you sure the program didn't use the wrong reference number, or "assume" some device name when it shouldn't have?
  258.  
  259. 2) Tools are locked down while executing and therefore can not be compacted.  If what you're saying is that the Window Manager has an unlocked handle that it doesn't re-dereference after compaction occurs, then that's a different story.  Please give more details and we'll try to track it down.
  260.  
  261. 3) The disk cache and /RAM5 both use memory obtained by the memory manager, and there is no conflict.  What do you mean by "don't get along"?
  262.  
  263. 4) Same thing with the APW Linker.  However, if you have your cache set too large, the linker could possibly run out of memory. Again, what do you mean by "don't get along"?
  264.  
  265. (I'll address the other one in the next memo since I have to go back and look to see what it is again.)
  266.  
  267. --Matt
  268.  
  269. Subj:  Re: GSOS Bugs                         88-10-23 13:22:44 EST
  270. From:  HErwin
  271.  
  272. GSOS wrote to the wrong file--just so.  The application had about 20 files open at the time (it's a full-fledged RDBMS) and it was using C file i/o calls.  The block ended up in one of the index files, not in the underlying data file.  Simultaneously the event queue went blooey.  I had to do quite a bit of work to recover.
  273.  
  274. Cache and /RAM5 don't get along--In the finder I was having trouble copying files into /RAM5.  The cache was set to 64 blocks.  I would consistently get a blowup in /RAM5 after transferring about 63 blocks.  Memory is OK.  Similar blowups were occurring when I ran the linker.
  275.  
  276. Window manager problems--I have a game under development that redraws a window frequently.  Eventually, the redraw got garbled. I also have the TML calculator and clock as NDAs.  I brought them up and left in the corners of the screen while running Hodge Podge.  I went through a number of windows, and eventually when the screen was being restored after closing a window, the face of the TML calculator became garbaged.
  277.  
  278. Signed, "Black Thumb" Harry Erwin, an experienced beta tester.
  279.  
  280.  
  281. Subj:  Re: GSOS Bugs                         88-10-23 17:13:02 EST
  282. From:  AFA Parik
  283.  
  284. Harry, have you tried some of the problems under the old
  285. system disk?  Obviously not the 20 open-file problem (heh, I
  286. would imagine you'd have INSTANT problem there ;), but the
  287. window manager stuff?  In the orca/desktop I'll have multiple
  288. windows open at once without a problem.
  289.  
  290. What does it do to the /RAM5 volume?  Garbage up the entire
  291. disk, or just stop copying things?  
  292.  
  293.  
  294.  
  295. Subj:  Re: GSOS Bugs?                        88-10-23 17:47:42 EST
  296. From:  Dave Lyons
  297.  
  298. >GSOS wrote to the wrong file--just so.  The application had
  299. >about 20 files open at the time (it's a full-fledged RDBMS)
  300. >and it was using C file i/o calls.
  301.  
  302. There isn't enough info to determine whether it's a GS/OS problem, a ProDOS FST problem, an APW C library problem, a bug in your C program, or a bug in *any* other part of the system.  Anything that stomped on memory not belonging to it *could* cause damage to GS/OS code or data structures, with the end result that you experienced.
  303.  
  304. Whereever the problem is, I want to help you find it.  If it *is* a GS/OS problem we need to find a way to duplicate it so we can present it to Apple.
  305.  
  306. >Cache and /RAM5 don't get along--In the finder I was having
  307. >trouble copying files into /RAM5.  The cache was set to 64
  308. >blocks.  I would consistently get a blowup in /RAM5 after
  309. >transferring about 63 blocks.  Memory is OK.  Similar blowups
  310. >were occurring when I ran the linker.
  311.  
  312. I've never had trouble with the Cache and /RAM5 myself.  What sort of trouble were you having copying to /RAM5?  If the minimum and maximum on /RAM5 are not equal, the Finder will be unable to copy large amounts of stuff to it at one time.  This is because /RAM5 requests memory as it is written to when max>min, and the Finder may already be using all the available memory for the stuff it just read and is trying to write.
  313.  
  314. What is a "blowup"?
  315.  
  316. Window manager/hodge podge/TML Calculator problems--again, there isn't enough info to narrow down the problem.  There may be a problem with Window Manager, Hodge Podge, the TML Calculator, or *any* other part of the system.  The first step is to be able to to duplicate the problem reliably if possible.  Utilities like Nifty List can be very useful in helping track down problems.  (Nifty List is Shareware, available in the library, by me.)
  317.  
  318. --Dave Lyons
  319.  
  320. Subj:  /RAM5 clarification                   88-10-24 01:10:39 EST
  321. From:  Dave Lyons
  322.  
  323. To clarify, /RAM5 starts out allocated to its MINIMUM size setting, and it grows up to its maximum as necessary.  If you set min=max, /RAM5 won't have to allocate memory on the fly.
  324.  
  325. Subj:  GSOS Bugs or Bad RAM?                 88-10-24 16:10:32 EST
  326. From:  AFL Jim
  327.  
  328. I might ask how you *know* you've got good RAM?
  329.  
  330. Apple's built-in (closed-apple/control/reset) won't find anything but completely dead RAM - either will Apple Dealer Diagnostics. They both read too quickly after writing to catch chips that don't like the CAS before RAS refresh method. I could use a better test if anyone has one :)
  331.  
  332. Jim
  333.  
  334.  
  335.  
  336. Subj:  Re: GSOS Bugs                         88-10-24 17:35:41 EST
  337. From:  HErwin
  338.  
  339. I had a work-around for the 20-file problem (actually 35--I counted)--close when not in use.
  340.  
  341. Window manager problem is new.  It's OK on 3.1.
  342.  
  343. RAM5 condition is trashed.  The OS tells me so when I try to mess with it.
  344.  
  345. Looks like I've got a new one.  With 35 files open, lseek (C) gets lost.  Location is 5880 (base 16) into the file.  Whence is 0.  File is #13 (base 10).  Record before can be found easily.  lseek had just found the record, and I was about to do a random write.  Interesting.  Further reports later this week.
  346.  
  347. Harry
  348.  
  349.  
  350. Subj:  Re: GSOS Bugs                         88-10-24 17:42:33 EST
  351. From:  ScottG25
  352.  
  353. Jim,
  354.  
  355. I mentioned almost the same thing to Harry on StarPort (he's a regular user there), and outlined how to write an efficient memory diagnostic.  To make a long story short, ram was my problem with GS/OS as well _AND_ the diags (from disk) did not catch it, either.
  356.  
  357. Scott
  358.  
  359. Subj:  Re: GSOS Bugs                         88-10-24 17:44:41 EST
  360. From:  HErwin
  361.  
  362. I'll put together fuller problem descriptions over the next few days.  The Hodge Podge problem is easiest to recreate.  Recompile it in C, change it to S16, and launch it.  Do some up and downs with font windows with the TML calculator and clock underneath.  I'll spend some time putting together a procedure this week. . . .
  363.     Harry Erwin
  364.  
  365.  
  366. Subj:  Re: GSOS Bugs                         88-10-24 17:47:28 EST
  367. From:  HErwin
  368.  
  369. RAM is 1.28 Meg.  Settings were 256/256.  Nothing on RAM5 at the time.  Cache was 64K.
  370.  
  371. Harry
  372.  
  373. Subj:  Re: GSOS Bugs                         88-10-24 17:49:36 EST
  374. From:  HErwin
  375.  
  376. Possible problem.  I used the dealer diagnostics to check.  The chip numbers are supposedly good.
  377.  
  378. Harry
  379.  
  380. Subj:  Re: GSOS Bugs and RAM                 88-10-24 22:14:57 EST
  381. From:  AFA Gary J
  382.  
  383. Is it just me, or is GS/OS more sensitive to RAM timing than previous operating system versions?  (And if so, why??)  I had to replace some of the chips on my RAM card when I got GS/OS because it wouldn't even boot properly with the RAM I had (it kept giving weird file errors, like end of file error, and stuff like that).  Before I got GS/OS, I had NO problems with my memory (at least that I noticed).  Things have been running smoothly since I changed the chips.  (Anyone else have these problems?)
  384.  
  385. The memory test I use for testing my chips is the Checkmate MultiRAM GS software.  In order to obtain reasonably accurate results, you must run any IIGS memory test for two hours or more (overnight, if possible).  
  386.  
  387. Gary
  388.  
  389.  
  390. Subj:  Re: GSOS Bugs                         88-10-24 22:49:41 EST
  391. From:  ScottG25
  392.  
  393. Gary,
  394.  
  395. Yes!  I had a problem that I posted to earlier in the large GS/OS folder.  It concerned an _Open call (P16 type) resting on a page boundary.  The program the call was in always got loaded at the same place (my system configuration didn't change at any time). It turns out that I had some bad ram that the GS dealer diags, didn't catch. The way I found it was to write a small program that just kept reading - comparing - and writing the call sequence back into ram at that page boundary.  After about 5 mins the small program bombed with the A-reg not what it should be (the compare was done with immediate values isolated from the bank in question after loading the A-reg with the suspect addresses value--of course this assumes the A-reg is not bad).  Maybe the problems are surfacing because of the speed increase in GS/OS (timing as you mentioned).  I've seen quite a few of these type problems surface on other computers (DEC-VAX) after a major  OS release (rare, but the do occur).  Perhaps Matt knows others who have had similar experiences with Apples.
  396.  
  397. Subj:  Re: GSOS Bugs                         88-10-26 19:38:09 EST
  398. From:  DennisDoms
  399.  
  400. I don't know of any of the "generic" RAM tests that will catch the (non) CAS-before-RAS problems. I do know that my IIgs passed all the Apple diags repeatedly (we're talking >12 hour run times here) and never reported a problem with the memory, which ultimately *was* the problem (confirmed with the chip manufacturer, thanks to Checkmate Technology). Moral: don't trust the diags. My experience is that programs are much better (unfortunately) at finding problems (ain't they always?). :)
  401.  
  402. AFL Jim called me today and was hot on the trail of a proper RAM test method. I can tell you what I used to demonstrate a problem on the IIgs: create a RAM5 volume the size of your RAM card, fill it with files, and start verifying the files S L O W L Y (that is, pause several minutes). I noticed that I couldn't re-boot off the RAM disk if I left it (and the computer) "idling" with 8-bit software (ProDOS 8 or Apple Pascal OS) for about 15-20 minutes. Apparently the key is to have a sufficient time lag between accessing the address lines of the memory card chips so that you can see if the internal refresh circuitry is working (Jim is tracking down a suitable way to implement this in a test).
  403.  
  404. Subj:  Re: GSOS Bugs                         88-10-26 20:42:16 EST
  405. From:  SkipS
  406.  
  407. I can verify from personal experience that the Dealer Diagnostic
  408. doesn't catch many RAM problems.  RAM failures can obviously cause all kinds of strange results, which is what I was having after upgrading to GS/OS. The diagnostics reported no errors, yet I just knew there was something fishy.  I decided to inspect the RAM chips and reseat them anyway and low and behold I found a bent pin that was very well desguised.  I haven't had a problem since and I can't explain why the failures began after I upgraded.  I never opened the machine so I know it was like that before the upgrade.  Moral: check and double check your RAM chips for bent pins and proper seating!  The diagnostics are not fool proof!  
  409. Skip
  410.  
  411.  
  412. Subj:  Re: GSOS Bugs                         88-10-26 20:43:37 EST
  413. From:  ScottG25
  414.  
  415. That's quite interesting, I wonder, did it do it every time, Dennis? This almost implies that it is a memory synchronization problem (interaction of MegaII and FPI chips)... Interesting... Please post more information, when you get it!  I hope Jim comes up with something good...  I wonder just how the diags tests, and if they test for crosstalk by writing to one address, and then reading the addresses to either side of the one being written to and checking for a change...  Interesting stuff!
  416.  
  417. Subj:  Re: GSOS Bugs                         88-10-27 11:45:45 EST
  418. From:  AFL Jim
  419.  
  420. Maybe we should start a new topic on memory test routines??
  421.  
  422.  
  423. Subj:  Re: GSOS Bugs                         88-11-03 18:20:46 EST
  424. From:  Chip65816
  425.  
  426. I have had problems which I think I have traced to the Cache DA.
  427. I am using a Battery-backed RAM disk in slot 6 with 1MEG.  I did not have any problems until GS/OS.  After Installing the system files, everything seems to work fine, but after a few hours of file manipulation etc., I get Bad Blocks out of range according to Mr. Fixit.  Data is missing in the RAM volume.  If I don't do anything, eventually enough files get messed up that GS/OS won't boot (it crashes into the monitor on load or other bad things). If, however, I set the Cache to 0K, I have no problems at all.  (At least not yet)  Any ideas?
  428.  
  429. Chip Welch
  430.  
  431.  
  432. Subj:  Re: GSOS Bugs                         88-11-04 15:34:22 EST
  433. From:  AFL Jim
  434.  
  435. Chip, this could be another in the series of bad DRAM problems.
  436.  
  437. Subj:  Re: GSOS Bugs                         88-11-05 16:43:00 EST
  438. From:  AFA John
  439.  
  440. Jim,
  441.  
  442. You mentioned bad RAM in the previous message and I was wondering whether this is becoming prevalent now days. This is not the first time I have heard mention of bad RAM and would like to know what is causing it, or who's chip are the problems.
  443.  
  444. John
  445.  
  446.  
  447. Subj:  Re: GSOS Bugs                         88-11-05 21:53:40 EST
  448. From:  JimLaz
  449.  
  450. The easiest solution is to keep your Catche set at 0K. Apparently GS/OS is thinking the RAM/ROM Disk is a 800k drive and is acting strangly. I have RAMKeeper and the Catche works fine with it.
  451.  
  452. JimLaz
  453.  
  454. Subj:  Re: GSOS Bugs                         88-11-06 03:19:45 EST
  455. From:  Dave Lyons
  456.  
  457. Mmm...I dunno about that--if you've got bad RAM, setting your GS/OS cache to 0 is only a temporary solution at best.  & I'm confident that GS/OS does *not* think your disk cache is a disk device.  I use a variable-sized 0-1024K /RAM5 with a nonzero GS/OS cache with no apparent problems.
  458.  
  459. --Dave L
  460.  
  461. Subj:  Re: GSOS Bugs                         88-11-06 21:27:07 EST
  462. From:  JSchober
  463.  
  464. Excuse me for being ignorant (again), but does the GS/OS Cache cache ONLY directory blocks, or also data blocks?
  465.  
  466. Anyway, what's the verdict .... is the Cache too dangerous to be worth using? :( You people seem to use GS/OS much more than I do.........
  467.  
  468. --Joe
  469.  
  470.  
  471. Subj:  GS/OS cache                           88-11-06 23:05:03 EST
  472. From:  Dave Lyons
  473.  
  474. Joe, *if* you trust my memory:
  475.  
  476. GS/OS *always* has a 16K cache for directory blocks.  In addition to that, you can use the Cache NDA to set a nonzero size for your data block cache; data blocks are cached *only* during class-1 GS/OS calls that specifically request it (so stuff that was written before GS/OS came out will never cache data blocks).
  477.  
  478.  
  479. Subj:  Re: GSOS Bugs                         88-11-09 22:46:42 EST
  480. From:  JSchober
  481.  
  482. Alright, I'll buy that...
  483.  
  484. And that's where the SESSION feature comes in??
  485.  
  486. <no, I STILL haven't gotten the GS/OS Ref. It costs more than $2.32. :( >
  487.  
  488.  
  489. Subj:  Re: GSOS Bugs                         88-11-10 02:19:13 EST
  490. From:  Matt DTS
  491.  
  492. Joe:
  493.  
  494. Don't be cheap.  We worked hard to make it a good book.  :-)
  495.  
  496. GS/OS automatically caches "system" blocks (directories, bit-maps, etc.) and will cache "application" blocks (non-system blocks) on request.  See GS/OS TN #3, "Pointers on Caching", arriving upon your steps sometime this month, certified developers.
  497.  
  498. --Matt
  499.  
  500. Subj:  Re: GSOS Cache                        88-11-20 02:57:01 EST
  501. From:  AndyBoy1
  502.  
  503. Matt already answered part of this, but I'll throw in my $0.02.
  504.  
  505. CACHE SIZE
  506.  
  507. The GS/OS cache is a variable-sized cache, adjustable by the user from 0-n where n depends on the total system RAM size.  However, turning off the cache would hurt the system so much that it actually bottoms out at 16k.
  508.  
  509. ONLY ONE CACHE
  510.  
  511. There is only one cache.  Caching is -handled- by device drivers but is -controlled- by FST's with some guidance from the applications.  What the heck does that mean?
  512.  
  513. First, although a driver receives a "cache-request" flag as part of a read or write call, it is up to the driver whether to cache or not.  This is because some devices should not ever be cached, and only the driver knows for sure.  For example, a RAM disk driver knows that RAM disks should never be cached.
  514.  
  515. The FST's make the cache requests because the FST's can make better cache decisions on a block-by-block basis.  There is no such animal as a "directory" cache or a "data" cache.  The ProDOS FST (-not- GS/OS) makes the following cache priority decision:  "system blocks" are cached, and "data blocks" aren't.
  516.  
  517. APPLICATION CONTROL OF CACHING
  518.  
  519. An application using Class 1 calls may override the cache priority and request caching of data blocks.  Matt mentions a technote which describes this aspect better, but to summarize, don't cache entire files.  Only cache segments of files which are repeatedly used.
  520.  
  521. SESSIONS
  522.  
  523. The GS/OS cache is a 'write-through' cache.  This means that while a read call may simply copy from the cache, every write call generates disk activity whether cached or not.  This is a safer cache because the disk itself is always up-to-date.
  524.  
  525. Sometimes, however, an application may be able to 'group' disk activities.  These should be sequences of disk activities which will always occur together, with no opportunity for the user to remove the media.  For example, if I made an entry in my home accounting package and it had to go out and update the ledger, payroll, finance, taxes, and misc files all together, this would be a place to use a session. 
  526.  
  527. When you turn on sessions, the cache becomes write-deferred.  If you write to a block in the cache, it will simply update the data in the cache.  If the cache is full and a dirty block must be purged, it will first be written to disk.  The application must now make a complete sequence of disk activities.
  528.  
  529. Finally, when the session is ended, the entire cache is scanned and all dirty blocks are written to the disk.  BUT:  They are written in block order, so the head won't thrash;  and blocks which were updated more than once during the session, are still only written once.
  530.  
  531. Hope that clears up some of the confusion.
  532.  
  533. Andy Stadler
  534. Apple II System Software
  535.  
  536. Subj:  Re: GSOS Bugs                         88-11-23 01:18:39 EST
  537. From:  JSchober
  538.  
  539. Dave... I agree totally! I usually don't stay in GS/OS long enough to have gotten any directory blocks majorly scrambled (only one bad-file-count error), but I'm not particularly looking forward to that day, either. Checksums are easy to do, and practically foolproof. (Yeah, yeah, you could do CRC's or triplicates of every block for verification purposes, but all you NEED is something simple like a checksum!) If we get lucky, maybe we'll see that added in System 4.1.  :)
  540.  
  541. Matt... Well, $2.32 is an approximate figure, yes, but it's roughly accurate. It'll be a while before I can afford any books, <sigh>.
  542.  
  543. And we won't even think about where my certified developership went to, so I'll just wait for the TN's to hit ALink.
  544.  
  545. Bloop.
  546.  
  547. --Joey
  548.  
  549.  
  550. Subj:  Re: GSOS Bugs                         88-11-25 21:38:25 EST
  551. From:  Guy Rice
  552.  
  553. I have my GS/OS cache set to 256K (I have 2.25megs of total RAM, so I can afford to set that much aside), and I've never had any problem with it either interfering with /RAM5 (set to 128K on my system) or with it having its contents scrambled with random stuff like Dave's font-list-in-the-directory problem.  However, I'd feel safer knowing there was a checksum of some sort - I've accidently trashed memory before while programming in assembly.  (I really hosed over APW once... well, more than once, actually... :)  If you think it would take too much time, maybe you could make a "checksum cache" bit in the system preferences or something that could be left normal by all programs except assemblers, compilers, and stuff like that...
  554.  
  555. GTR
  556.  
  557.  
  558. Subj:  Re: GSOS Bugs and Disk cache          88-12-24 12:46:03 EST
  559. From:  KKASHMAREK
  560.  
  561. I have found the discussion about cache all very interesting. Micol Advanced Basic loads up my cache, set at 512K, and seems to lock in about 160K, and no application is able to use cache again after that. For example, using ORCA/Pascal, first CMPL command for a source file loads up the compiler and linker in memory. Second CMPL is much faster since these modules are memory restartable.  Also, second CMPL does not access hard disk for link library searching. After running Micol Advanced Basic, this is no longer true. Compiler and linker must be reloaded from disk, and second CMPL does not take advantage of cache for link library searches (much disk I/O during linking). 
  562.  
  563. Sure wish the default for cache use was yes by the ProDOS FST. Could make everything faster, and force use of the cache LRU algorithm to see if it really works.  Certainly glad directory blocks are cached and bit maps.  The bit map is critical for large volume hard disks that are almost full.  I don't use RAM5 since I have a slot based RAM card available. I keep the cache set to 128K normally, although it seldom gets above 32K.  
  564.  
  565. Subj:  GS/OS Bugs                            89-01-24 19:37:22 EST
  566. From:  BrianG19                              Msgs:  35 (89-02-07)
  567.  
  568. I have found several bugs in GS/OS, bugs which have been verified with other developers:
  569. 1] When saving large files consisting of mostly $00's, the file size in the directory are very,very wrong.  EX. Create a black picture with a paintprogram (all $00) and save it.  Some programs will not load it back in, because the filesize is wrong.  Or, if you go to the finder and try to copy a previously created file of the same genre, the new copy will have the wrong file size also.
  570. 2] It seems that on occasions, the loader will write a few bytes into the program, thus crashing it occasionally, or the relocator does not work.
  571.  
  572. I am interested in what other bugs have been found.
  573.  
  574. -Brian Greensto
  575.  
  576. Subj:  Re: GS/OS Bugs                        89-01-24 20:43:02 EST
  577. From:  DennisDoms
  578.  
  579. Item 1 ("small" files) is probably due to the ProDOS FST making files with long runs of $00 bytes sparse; check the endfile for the file size (not the block count). If the application is not identifying the file correctly because it's checking the block count rather than endfile, then it's the application's fault.
  580.  
  581. Subj:  Re: GS/OS Bugs                        89-01-25 14:05:05 EST
  582. From:  AFL Floyd
  583.  
  584. Dennis is quite right.  Certain paint programs, like PaintWorks, look at the block count instead of the EOF size like they're supposed to.  Lousy programming.
  585.  
  586. The ProDOS FST *automatically* creates sparse files when writing out zeroed blocks.  This would be invisible to any application that was written properly.
  587.  
  588. Floy
  589.  
  590. Subj:  Random Bytes?                         89-01-25 22:41:08 EST
  591. From:  AFA Gary J
  592.  
  593. Brian,
  594.  
  595. What do you mean by random bytes being written into the code?  Could you be more specific?   
  596.  
  597. Gary
  598.  
  599.  
  600. Subj:  Re: GS/OS Bugs                        89-01-25 23:27:39 EST
  601. From:  DaviesDoug
  602.  
  603. Yah, I noticed the sparse file creation too.  I was doing a SHR screen save (desk accessory) and my file kept coming out to 43 blocks instead of 65.  Man was I confused.  But I did a CMP in ORCA and sure enough the files are the same.  Pretty neat!  I am working on an application that copies files and was worried I would have to treat sparse files differently, but GSOS is going to do this for me automatically!  DEFINATELY NOT A BUG, it is a wonderful feature, just confusing at first.
  604.  
  605. I've gone through and recopied alot of my files to make them smaller.  Alink.Sys16 gets cut down by like 100 blocks if you copy it under GSOS, and loads a little bit quicker!!!
  606.  
  607.  
  608. Subj:  Re: Random Bytes                      89-01-28 12:40:58 EST
  609. From:  BrianG19
  610.  
  611. What I mean... and I have heard of the same thing happening to other developers... is that my application which I am writing will crash 100% when I used GS/OS, not Prodos 1.6.  Its not the program's fault, because if I link the files in a different order, then it crashes in a different part of the program, and when I was trying to find the bug, I eliminated it down to the first 50 lines of my program which is just tool startup calls which are perfectly valid unless there has been a change in the tool call protocol with GS/OS.  Other people have reported the same thing, but its impossible to trace the bug anyfarther back than to the ToolStartUp calls.  I dunno...
  612. -Brian
  613.  
  614.  
  615. Subj:  random memory trashing                89-01-28 16:14:06 EST
  616. From:  Dave Lyons
  617.  
  618. Brian, I seriously want to get to the bottom of any random memory trashing which may be going on anywhere in the system.  It _is_ possible to trace this kind of thing--it may not be fun, but it is possible.
  619.  
  620. If you are willing to e-mail me part or all of your program via "Send File By Mail..." in the post office (either source or object), I will see what I can figure out.  There are a _lot_ of things you can do wrong in tool startups, etc, that will not always cause problems, or at least not noticable problems.
  621.  
  622. It's also certainly possible you're being bitten by a legitimate bug in the system, but either way, I want to get to the bottom of it: either to restore your confidence in the system or to get the bug repaired.
  623.  
  624. --Dave Lyons
  625.  
  626. Subj:  Re: GS/OS Bugs                        89-01-29 20:44:19 EST
  627. From:  AFA Parik
  628.  
  629.  
  630. The only thing I can think of is the #$012000 reservations... it could be crashing there since $012000+ will PROBABLY be used when running (especially if you are in Orca/M, etc).  Try running the program through the debugger and seeing where it crashes exactly...
  631.  
  632. Subj:  Re: GS/OS Bugs                        89-01-30 20:20:56 EST
  633. From:  BrianG19
  634.  
  635. I am using Merlin 8/16, but I dont think thats the problem, because EVERYTHING works PERFECTLY under P16... Its GOT to be GS/OS.
  636.  
  637.  
  638. Subj:  Finding the bugs                      89-01-30 22:12:18 EST
  639. From:  Dave Lyons
  640.  
  641. Brian, the reasoning "It works with P16; it doesn't work with GS/OS; GS/OS is buggy" is wrong.  In the GS environment there are a lot of things your program can do wrong that will _eventaully_ cause you a problem, when you get unlucky enough to have the memory you trash be important.
  642.  
  643. In the case of the code you posted a few messages back, the problem is that your code assumes the B register is set to some particular bank, when in fact it has a no defined value at that point.  (I'm assuming that the code you showed is everything that has executed starting with the beginning of your program.)  All your loads and stores of MyID, MasterID, XHandle, CharSetHandle, etc, are happening in a _random_ 64K bank of memory, usually one your program doesn't own.  As "luck" would have it, it seems that when you run your program under GS/OS with your particular set of DAs & drivers installed, your "global variables" bank is in a different bank from your program code, and the B register happens to be set to your program code bank!  So your own STAs are trashing your code.  [At least, that's how it appears to me w/ limited info about your program--I don't know how many segments it has, for example.  You might take a look at Nifty List in the library {Shareware, $15, by me}, since it will easily show you what memory your program owns, among many other things.]
  644.  
  645. If your globals are in the same segment as your code, you can use PHK PLB to set the B register.  If they are in a different segment, use something like
  646.  
  647.    LDA #MyID|-16
  648.    XBA
  649.    PHA
  650.    PLB
  651.    PLB
  652.  
  653. Let me know if this solves your problems!
  654.  
  655. --Dav
  656.  
  657. Subj:  non-GS/OS bugs                        89-01-30 22:22:26 EST
  658. From:  Dave Lyons
  659.  
  660. Forgot to mention 2 other things in your code, Brian:  you should check for an error code after the NewHandle that tries to allocate the $600 bytes of direct page space; and be careful about using the CharSet value, because your code leaves the handle unlocked.  CharSet will become invalid on the next operation that can allocate memory [which is not the same as saying it will fail in an obvious way...using the pointer anyway might not cause a crash for a long time...like until you release your program!].
  661.  
  662. --Dave
  663.  
  664. Subj:  Dave do you really waste 2 bytes      89-01-30 23:12:04 EST
  665. From:  DaviesDoug
  666.  
  667. Dave:
  668.  
  669.    PEA   MyId|-16
  670.    PLB
  671.    PLB
  672.  
  673. works a lot better than the way you did it (saves 2 bytes)
  674.  
  675.  
  676. Subj:  Re: Wasting 2 bytes                   89-01-31 00:07:57 EST
  677. From:  DaviesDoug
  678.  
  679. Ooooops goofed:
  680.  
  681.     PEA  MyID|-8    ; not |-16 sorry
  682.     PLB
  683.     PLB
  684.  
  685. :)
  686.  
  687.  
  688. Subj:  Re: GS/OS Bugs                        89-01-31 19:17:47 EST
  689. From:  BrianG19
  690.  
  691. Dave,
  692.   The data bank stuff is NOT the problem.  The 2 lines before the routine I listed is called the following lines are executed:
  693.    phk
  694.    plb
  695. so, that's not why it crashes... I dunno.. my instinct says GS/OS.
  696.  
  697. -Brian
  698.  
  699.  
  700. Subj:  wasting 2 bytes                       89-01-31 20:22:17 EST
  701. From:  Dave Lyons
  702.  
  703. Doug, no--typically I don't waste two bytes.  Instead, I write in Pascal or C and waste a whole bunch of them.
  704.  
  705. Subj:  finding the bugs                      89-01-31 20:24:46 EST
  706. From:  Dave Lyons
  707.  
  708. Brian--Okay, fine.  Let's start again, then.  Before you blame GS/OS, you're going to have to show us all the code your program executes up until the point that something has definitely been trashed.  Don't leave anything out.  If it's too large to post the source, then use "send file by mail" in the Post Office to send me either the source or the object, as your prefer, and I'll take a look at it.
  709.  
  710. Your code may or may not be at fault; if it is, I'll find the problem, and if it isn't, then I'll be well on the way to finding a bug in the system somewhere.
  711.  
  712. Subj:  Re: GS/OS Bugs                        89-01-31 21:56:05 EST
  713. From:  AFA Parik
  714.  
  715. Brian,
  716.  
  717. running the program under the APW Debugger would be the EASIEST way to see where it crashes.  You did say it crashes definitely, didn't you (as in BRK $00, etc)?  The debugger is INVALUABLE in this aspect, you can see *EXACTLY* where it crashes as it runs.  
  718.  
  719. Subj:  Re: GS/OS Bugs                        89-02-01 20:27:51 EST
  720. From:  BrianG19
  721.  
  722. As I already told Dave Lyons:
  723.  
  724. This is the ONLY code that is executed once GS/OS has passes control to my program before I am able to notice the 25 trashed bytes:
  725.  
  726.        shortA   (sep #$30 or whatever it is  rep #$30.. i dunno)
  727.        stal  $c010
  728. :loop  ldal $c000
  729.        bpl :loop
  730.        ...
  731.  
  732. That's it!  Either those lines are screwing up 25 bytes, or its GS/OS screwing them up before control is passed to my program.
  733.  
  734. -Brian
  735.  
  736.  
  737. Subj:  finding the bugs                      89-02-01 23:29:09 EST
  738. From:  Dave Lyons
  739.  
  740. (ShortA is SEP $30, and it also tells the assembler to generate appropriate-length immediate-mode instructions.)
  741.  
  742. Other possibilities:  The bytes were wrong to begin with, rather than getting trashed.  (If the program works under ProDOS 16, is there something out of the ordinary about the OMF file that the GS/OS Loader deals with differently or incorrectly?)
  743.  
  744. The 25 possibly-trashed bytes appear to be valid code; WHAT WERE THEY SUPPOSED TO BE?  Are you Listing them with the proper m/x register settings?  Use Ctrl-N for 16-bit registers or Ctrl-R for 8-bit registers immediately before Listing in Nifty List to make sure you've got the right settings.  (I say to do it immediately before because Listing through a SEP, REP, or XCE instruction affects Nifty List's settings.)
  745.  
  746.  
  747. Subj:  Re: GS/OS Bugs                        89-02-02 13:17:38 EST
  748. From:  Dave HDS
  749.  
  750. From what I recall, GS/OS was originally not able to correctly load OML Version 1 files.  A long shot, but worth checking, especially if the code is being genorated from Merlin 8/16...
  751.  
  752. If this is the case, just use the APW Compact (or ORCA/M equiv.) to update/convert the file to the lastest/most compact OML format and then try executing it...
  753.  
  754. Dave
  755.  
  756.  
  757. Subj:  Re: GS/OS Bugs                        89-02-02 18:46:23 EST
  758. From:  AFL Scott
  759.  
  760. Hmm... I bet you mean OMF #1... Funny, I've had no problems, and I always have problems, very wierd ones (most are my fault, tho...)... 
  761.  
  762. Subj:  The Final Say                         89-02-02 19:34:03 EST
  763. From:  BrianG19
  764.  
  765. Ok, folks, I screwed up.  To make a long story short, those things that I thought were bugs in GS/OS are not bugs, but rather mistakes that _I_ made.  I guess I jumped the gun.  Sorry.  As far as I know now, there are no fatal bugs in GS/OS.
  766.  
  767.  
  768. Subj:  GS/OS & OMF1?  Locating bugs          89-02-02 20:18:26 EST
  769. From:  Dave Lyons
  770.  
  771. Hmmm...I haven't had any trouble with GS/OS and OMF v1 files--has anybody had problems?  (With the GS/OS on System Disk 4.0, I mean--not the development versions!)
  772.  
  773. Brian, I'm glad you found the problem w/ your code.  Brian described the problem in more detail by e-mail, and I'm going to summarize it because it may save other programmer's some frustration.  It turned out that under ProDOS 16 the program's direct page was pre-filled with zeroes (or, at least, it typically had zeroes in it by accident), and a two-byte value's high byte was never being initialized.
  774.  
  775. This suggests a good defensive-programming technique:  consider having your program fill its direct page with something Weird like $77s at the beginning--that way you'd be more likely to uncover problems with uninitialized values right away.
  776.  
  777. On the other hand, if you're worried that you're assuming some direct-page values are $00 when they have never been initialized, you might as well have your program fill the thing with $00s in the first place!
  778.  
  779. To get back to the topic at hand:  GS/OS bugs probably exist, but finding them hard and time-consuming, and you should blame your own program _first_, partly because it's easier to look in your own program than in the system!
  780.  
  781. --Dave
  782.  
  783. Subj:  Re: GS/OS Bugs                        89-02-02 21:51:19 EST
  784. From:  AFL Scott
  785.  
  786. Dave,
  787.  
  788. I agree 100% as you WELL know!:)
  789.  
  790. Scott
  791.  
  792. Subj:  OMF #1                                89-02-03 10:38:14 EST
  793. From:  MikeW50
  794.  
  795. GS/OS loads OMF #1 just fine.  There may well be some bugs with some features of the OMF, but if so, I have never encountered them.
  796.  
  797. Mike Westerfield
  798.  
  799. Subj:  Dave's punctuation                    89-02-03 19:52:34 EST
  800. From:  Dave Lyons
  801.  
  802. (Oops!  Pardon my extra apostrophe 3 msgs back.  :)
  803.  
  804. Subj:  stack/direct-page segment, etc        89-02-04 14:22:48 EST
  805. From:  Dave Lyons
  806.  
  807. Ummm...Coach, how are you typing in your messages?  The up-arrow key should be of great utility for making changes to previous paragraphs. :)
  808.  
  809. A couple notes on filling the stack/dir-pg segment.  (1) Be careful _not_ to overwrite part of the stack that already has useful stuff on it!  You can safely fill up to and including the byte that the S register points to.  (2) When you look for the _pattern_ remaining to decide what the peak stack use was while your program ran, keep in mind that at least one toolset does (or used to) allocate a whole _page_ (256 bytes) of stack space, and I bet it doesn't use all of it!  It could "hop over" your pattern and use some more memory below where you think it got.  Just to confuse you.
  810.  
  811. Subj:  Stack Overflows                       89-02-06 15:38:07 EST
  812. From:  MikeW50
  813.  
  814. Also, if you happen to be using high-level languages, ORCA/Pascal has an option to check for stack overflows.
  815.  
  816. Mike Westerfield
  817.  
  818. Subj:  discovering stack overflows           89-02-06 23:38:43 EST
  819. From:  Dave Lyons
  820.  
  821. Mike, I'm curious...how does the ORCA/Pascal stack overflow detection work?  Given the problem I mentioned a few messages ago (if this is the right folder), I don't see a nice reliable way to do it.
  822.  
  823. Subj:  Stack Overflows                       89-02-07 16:55:14 EST
  824. From:  MikeW50
  825.  
  826. It isn't 100% reliable, Dave, at least not with tool calls.  Basically, though, Pascal knows how much stack space it will need in a given subroutine (this information is available from the compile step), and it knows where the bottom of the stack is.  The check subtracts the amount of space needed from the current stack location, and then looks to see if the result is above the min stack location.  If not, it generates a run time error.
  827.  
  828. Mike Westerfield
  829.  
  830. Subj:  Re: Compliments To ORCA/Pascal        89-02-07 21:54:39 EST
  831. From:  Coach101
  832.  
  833. A simple check (the stack check) that does not take a lot of time
  834. and could save some real frustation in finding "random" disasters
  835. in a "finsihed" program.
  836.  
  837. Dave, with respect to editing my message, I knew there were a 
  838. bunch of the "mentioned" typo and since I still put in my own
  839. carriage returns (makes it easier to read when you download a
  840. folder since I have not updated my "print" program to do "word
  841. wrapping") making simple changes back up in the text can take
  842. some time if you are a "neatnik".  Ergo, I put the _EQU_ at the
  843. end of the message in the folder.
  844.  
  845.